//package leetcode;
//
//import java.util.Deque;
//import java.util.LinkedList;
//import java.util.List;
//
//class TreeNode {
//    int val;
//    TreeNode left;
//    TreeNode right;
//
//    public TreeNode(int val) {
//        this.val = val;
//    }
//}
//
//class Solution {
//    List<List<Integer>> ret = new LinkedList<List<Integer>>();
//    Deque<Integer> path = new LinkedList<Integer>();
//
//    public List<List<Integer>> pathSum(TreeNode root, int target) {
//        dfs(root, target);
//        return ret;
//    }
//
//    private void dfs(TreeNode root, int target) {
//        if (root == null) {
//            return;
//        }
//        path.offerLast(root.val);
//        target -= root.val;
//        if (root.left == null && root.right == null && target == 0) {
//            ret.add(new LinkedList<Integer>(path));
//        }
//        dfs(root.left, target);
//        dfs(root.right, target);
//        path.pollLast();
//    }
//}
//
//public class Test3S {
//}
